home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 33
/
033.d81
/
cw trainer
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
4KB
|
129 lines
100 dim n1(50), cw$(50), dur(50,8),bb(510)
150 poke53281,6:poke53280,11:poke646,15
160 sp$=" ":printchr$(142)
200 gosub60000
300 goto6000
400 for l=54272to54296:pokel,0:nextl
500 s=54272:pokes+5,15:pokes+24,15:pokes+6,40
600 pokes+21,57:pokes+22,100:pokes+23,8
650 print"[147]each practice session lasts for"
660 print"two minutes."
700 print"suggested code speeds are from 2 to 15"
710 print"words per minute"
800 input"what code speed do you wish?";speed
801 ifsp<2orsp>15thenprint" please enter a value between 2 and 15.":goto800
900 number=int(speed*10.)
910 ifspeed>4then950
920 ss=4:ts=45:su=2800:goto1000
950 ifspeed>10then980
960 ss=6:ts=65:su=1000:goto1000
980 ss=5:ts=60:su=1250
1000 gosub 3500
1050 poke53280,6:poke53281,5:poke646,0
1100 print"[147]get ready--code practice begins in 5 seconds"
1105 print:print" [press 'q' to exit practice]":print
1200 for tt=1to2000:nexttt
1250 gosub1400
1260 printchr$(13);"practice this group again (y/n)"
1270 poke198,0:wait198,1:getan$:ifans$="y"then900
1280 ifans$="n" goto300
1290 goto 1270
1310 :
1400 :
1450 li=1:ag=number:rem ifsv=9orsv=10thenag=ag-30
1500 foria=1toag
1600 ib=bb(ia):ifli+len(cw$(ib))>38thenprint:li=1
1610 printcw$(ib);sp$;:li=li+len(cw$(ib))+1
1700 foric=1ton1(ib)
1750 ifpeek(198)<>0thengetx$:ifx$="q"thenreturn
1800 forid=1to7*dur(ib,ic)*ss/speed
1900 pokes,31:pokes+1,21:pokes+3,8:pokes+2,0:pokes+4,65:next
2000 forid=1tots/speed:pokes+4,64:nextid
2100 nextic
2200 foric=1tosu/speed:nextic
2300 nextia
2350 return
2800 :
2900 for i=1to42
3000 readn1(i),cw$(i)
3100 for j=1ton1(i)
3200 read dur(i,j)
3300 nextj:nexti
3400 return
3500 :
3600 fori=1tonumber
3700 bb(i)=int(rnd(0)*nr)+sw
3800 nexti
3900 return
4100 data 1,e,1,2,i,1,1,1,t,3,2,m,3,3,2,a,1,3,2,n,3,1
4200 data 3,d,3,1,1,3,g,3,3,1,3,k,3,1,3,3,o,3,3,3,3,r,1,3,1
4250 data 3,s,1,1,1,3,u,1,1,3,3,w,1,3,3,4,b,3,1,1,1
4300 data 4,c,3,1,3,1,4,f,1,1,3,1,4,h,1,1,1,1,4,j,1,3,3,3
4350 data 4,l,1,3,1,1,4,p,1,3,3,1,4,q,3,3,1,3,4,v,1,1,1,3
4400 data 4,x,3,1,1,3,4,y,3,1,3,3,4,z,3,3,1,1,5,1,1,3,3,3,3,5
4500 data 2,1,1,3,3,3,5,3,1,1,1,3,3,5,4,1,1,1,1,3,5,5,1,1,1,1,1
4600 data 5,6,3,1,1,1,1,5,7,3,3,1,1,1,5,8,3,3,3,1,1,5,9,3,3,3,3,1,5
4700 data 0,3,3,3,3,3,6,period,1,3,1,3,1,3,6,comma,3,3,1,1,3,3,6
4800 data?mark,1,1,3,3,1,1,5,slash,3,1,1,3,1,8,goof,1,1,1,1,1,1,1,1,1," ",0
4900 open15,8,15,"r0:hello connect=hello connect":input#15,er:close15
4910 print"[147]";:ifer<>63thenend
4920 load"hello connect",8
6000 :
6040 :
6080 :
6085 poke53280,6:poke53281,5:poke646,0
6090 print"[147] cw trainer menu:"
6100 print"choose from an item below:"
6110 print: rem fori=1to2500:nexti
6120 print"1. practice on letters: a,e,i,m,n,t"
6140 print"2. practice on letters: d,g,k,o,r"
6160 print"3. practice on letters: b,s,u,w"
6180 print"4. practice on letters: c,f,h,j"
6200 print"5. practice on letters: l,p,q,v"
6220 print"6. practice on letters: x,y,z"
6240 print"7. practice on numbers: 1 through 5"
6260 print"8. practice on numbers: 6 through 0"
6280 print"9. practice on punctuation: period,"
6290 print"comma, ? mark, slash, goof (error)"
6300 print"10. random practice on all of the above"
6320 print"11. quit for now (return to loadstar)":print
6340 input"which do you want";sv$:sv=val(sv$)
6345 ifsv<1orsv>11thenprint"[145]";:goto6340
6360 onsvgoto6400,6450,6500,6550,6600,6650,6700,6750,6800,6850,4900
6400 sw=1:sx=6:nr=6:gosub3500:goto400
6450 sw=7:sx=11:nr=5:gosub3500:goto400
6500 sw=12:sx=15:nr=4:gosub3500:goto400
6550 sw=16:sx=19:nr=4:gosub3500:goto400
6600 sw=20:sx=23:nr=4:gosub3500:goto400
6650 sw=24:sx=26:nr=3:gosub3500:goto400
6700 sw=27:sx=31:nr=5:gosub3500:goto400
6750 sw=32:sx=36:nr=5:gosub3500:goto400
6800 sw=37:sx=41:nr=5:gosub3500:goto400
6850 sw=1:sx=41:nr=41:gosub3500:goto400
60000 rem
60010 rem--subrutine to initialize screen and start program
60030 rem
61000 print"[147]morse code training program"
61020 print"by terry m. brown"
61060 print"";spc(25);"[144][162][162][162][162][162][162][162][162][162]"
61080 printspc(29);" [146]"
61100 printspc(12);"[169] [146]"
61120 printspc(8);"[187][172][146] [146] [223][169]"
61140 print"[168][168][168][168][168][168][168][168][144][190][188][146] [169] [223][146] [169][223][146]"
61160 printspc(7);" [146]"
61180 print"[158]morse code key"
61200 gosub2800
61220 data 4,10,11,12,1,42,16,10,7,1,42,2,12,42,17,13,6
61240 number=17
61250 speed=7
61260 fori=1tonumber
61280 readbb(i)
61300 nexti
61400 for l=54272to54296:pokel,0:nextl
61500 s=54272:pokes+5,15:pokes+24,15:pokes+6,40
61600 pokes+21,57:pokes+22,100:pokes+23,8
61650 print"";spc(10);
61700 printtab(15)"press a key"
62700 poke198,.:wait 198,1:poke198,.
63000 return